[1] "AauladeR"
Aula 13.2, M2
Sala de Situação - UnB
Funções join(), pivot_longer/wider.
Vocês! aula 13.1 Edição com set_header_labels(), add_header_row(), set_caption() e font(). Entregar o .Rmd da tabela da aula com algumas modificações simples.
13.2 Pacotes stringr e lubridate
Nada mais do que um texto
Costumam não estar padronizadas
E por isso costumam dar trabalho!!
“Riacho Fundo”, “riacho fundo I”, “riacho fundo 1” …
str_c
str_trim()
str_sub ()
str_detect
separate()
unite()
case_ID sintomas desfecho
1 1 icterícia, febre, calafrio Recuperado
2 2 calafrio, dores, dores fortes Óbito
3 3 febre Óbito
4 4 vômito, diarréia Recuperado
5 5 sangramento da gengiva, febre Recuperado
6 6 pulso rapido, dor de cabeça Recuperado
df_split <- df %>%
separate( col=sintomas,
into = c("sym_1", "sym_2", "sym_3"),
extra = "merge",
sep=",")
df_split case_ID sym_1 sym_2 sym_3 desfecho
1 1 icterícia febre calafrio Recuperado
2 2 calafrio dores dores fortes Óbito
3 3 febre <NA> <NA> Óbito
4 4 vômito diarréia <NA> Recuperado
5 5 sangramento da gengiva febre <NA> Recuperado
6 6 pulso rapido dor de cabeça <NA> Recuperado
df_split %>%
unite(
col = "todos os sintomas", c("sym_1", "sym_2", "sym_3"),
sep = ", ", remove = TRUE, na.rm = TRUE
) case_ID todos os sintomas desfecho
1 1 icterícia, febre, calafrio Recuperado
2 2 calafrio, dores, dores fortes Óbito
3 3 febre Óbito
4 4 vômito, diarréia Recuperado
5 5 sangramento da gengiva, febre Recuperado
6 6 pulso rapido, dor de cabeça Recuperado
RegEx parea os íntimos
Vamos falar rapidamente sobre isso
banana_vec <- c("banana", "bananas", "bananal", "abanar", "bananeira", "bandolim")
str_detect(banana_vec, "^ban")[1] TRUE TRUE TRUE FALSE TRUE TRUE
datasus <- rio::import("https://d26692udehoye.cloudfront.net/SRAG/2019/INFLUD19.csv")
datasus %>%
select(OUT_ANTIV) %>%
filter(OUT_ANTIV!="") %>%
head(50) OUT_ANTIV
1 tamiflu
2 tamiflur
3 tamiflu
4 TAMIFLU
5 tamiflu
6 tamiflu
7 tamiflu
8 claritromicina
9 azitomicina
10 azitromicina
11 tamiflu
12 claritromicina
13 TAMIFLU
14 clavulin
15 claritromicina
16 TAMIFLU
17 tamiflu
18 tamiflu
19 claritromicina
20 aciclovir
21 tamiflur
22 tamiflur
23 TAMIFLU
24 TAMIFLU
25 tamiflu
26 TAMIFLU
27 TAMIFLU
28 claritromicina
29 TAMIFLU
30 tamiflu
31 tamiflu
32 TAMIFLU 75MG
33 TAMIFLU
34 tamiflu
35 TAMIFLU
36 TANIFLUR 75 MG
37 tamiflur
38 TAMIFLU
39 tamiflu
40 tamiflu
41 tamiflu
42 tamiflur
43 tamiflu
44 tamiflu
45 azitromicina
46 TAMIFLU
47 TAMIFLU
48 CLARITROMICINA
49 AZITROMICINA
50 tamiflu
datasus %>%
mutate(OUT_ANTIV=str_to_lower(OUT_ANTIV)) %>%
filter(str_detect(OUT_ANTIV, "flu"))%>%
select(OUT_ANTIV) %>%
head(50) OUT_ANTIV
1 tamiflu
2 tamiflur
3 tamiflu
4 tamiflu
5 tamiflu
6 tamiflu
7 tamiflu
8 tamiflu
9 tamiflu
10 tamiflu
11 tamiflu
12 tamiflu
13 tamiflur
14 tamiflur
15 tamiflu
16 tamiflu
17 tamiflu
18 tamiflu
19 tamiflu
20 tamiflu
21 tamiflu
22 tamiflu
23 tamiflu 75mg
24 tamiflu
25 tamiflu
26 tamiflu
27 taniflur 75 mg
28 tamiflur
29 tamiflu
30 tamiflu
31 tamiflu
32 tamiflu
33 tamiflur
34 tamiflu
35 tamiflu
36 tamiflu
37 tamiflu
38 tamiflu
39 tamiflu
40 tamiflu
41 tamiflu
42 tamiflu
43 tamiflu
44 tamiflu
45 tamiflu
46 tamiflu
47 tamiflur
48 tamiflu
49 tamiflu
50 tamiflu
Trabalhando com datas
Incompatibilidade de formatos: d/m/a ; a-m-d
É caracter ou numérico?
VOCÊ SÓ CONSEGUE FAZER CONTAS DE INTERVALO DE TEMPO NESSE FORMATO
Ou seja, se não estiver, você tem que transformar para esse formato.
Ao apresentar em um gráfico ou tabela: pode formatar, mas a partir daí não é mais uma data para o R
Está agora no tidyverse!
A intenção é sempre pegar uma data que está no “nosso formato”.
Ver o formato que ela está.
“Avisar” pro R o formato que ela está.
Para ele conseguir colocar no formato que ele consiga entender como uma data
%d = dia
%m= mês número ; %B= mês nome ; %b= nome abreviado
%y = ano com 2 dígitod (ex. 89 ; %Y = ano com 4 dígitos (ex. 1989)
%A = Dia da semana (Segunda, Terça, etc.)
%U = Semana (01-53)
Há vários outros problemas que podem acontecer…
Mas o importante é: tem que ter
Não estamos costumados a mostrar a data nesse formato de YYY-mm-dd
DEPOIS de fazer as contas, ordenações que eu quiser, eu posso escolher apresentar nas tabelas, gráficos, texto, de outra forma… para isso, existe a funçao format.
É a idéia do as.Date, ao contrário…
Tem uma função que calcula as semanas epidemiológicas epiweek().
Ela é bem “esperta”
consegue extrair de um objeto de data
Até a próxima aula!